package hotciv.strategies;

import hotciv.common.CityImpl;
import hotciv.common.TileImpl;
import hotciv.common.UnitImpl;
import hotciv.framework.*;

import java.util.Map;

public interface LayoutStrategy {

	/**
	 * Returns a map with cities that should start in the current game
	 * @return the map
	 */
	public Map<Position, CityImpl> getCities();

	/**
	 * Returns a map with production stash that cities in the current game should start with
	 * @return the map
	 */
	public Map<Position, Integer> getCityProductionStashes();

	/**
	 * Returns a map with units that should start in the current game
	 * @return the map
	 */
	public Map<Position, UnitImpl> getUnits();

	/**
	 * Returns a map with tiles different from plains that should start in the current game - contains only tiles that are not plains 
	 * @return the map
	 */
	public Map<Position, TileImpl> getTiles();
}
